Unity开发PICO G2程序时如何在电脑上调试Unity代码逻辑

您所在的位置:网站首页 pico g2可以连接pc吗 Unity开发PICO G2程序时如何在电脑上调试Unity代码逻辑

Unity开发PICO G2程序时如何在电脑上调试Unity代码逻辑

2024-07-09 09:29:39| 来源: 网络整理| 查看: 265

一、头盔模式下的编辑器

配置好头盔组建后,点击运行按钮,你会发现你的编辑器Game窗口是这样的,你无法交互 请添加图片描述

二、修改后可以在编辑器运行模式下交互的样子

先看示例,2dUI 和3D 物体都可以交互,而且触发的的事件都可以通过OnPointerEnter/Exit/Down/BeginDrag/Drag/EndDrag接口来自定义业务逻辑 请添加图片描述

三、如何进行编辑器的环境设置(版本切换)

原理:自己写一个编辑器脚本,根据需求,启用或者停用相关组件来设置Unity的环境,使之匹配纯PC 或VR模式。

发布模式:比如要发布VR版本的时候,设置成VR模式,然后发布调试模式:要在Unity Editor中调试逻辑时,直接设置成PC模式

在这里插入图片描述 在这里插入图片描述

物体上脚本(组件)启用或者停用一览表 gameObject对象 脚本/组件 PC VR active 备注 ==================================================================== Pvr_UnitySDK Pvr_UnitySDKManager 0 1 Event Pvr_InputModule 0 1 Event InputWith3D 0 1 Event BaseInput 1 0 PC输入法 Event StandaloneInputModule 1 0 PC输入法 HeadSetControl Pvr_UIPointer 0 1 [EyeMask] Pvr_UnityEyeMask 0 1 Head Camera 1 1 Head Pvr_UnitySDKHeadTrack 0 1 Head Pvr_UnitySDKEyeManager 0 1 FPS Pvr_UnitySDKFPS 0 0 LeftEye Pvr_UnitySDKEye 0 1 RightEye Pvr_UnitySDKEye 0 1 BothEye Pvr_UnitySDKEye 0 1 ControllerManager Pvr_ControllerManager 0 1 ControllerManager Pvr_Controller 0 1 PvrController0 hide PvrController1 hide Canvas Pvr_UICanvas 0 1 Canvas GraphicRaycaster 1 0 四、 主要脚本【ChangeEditorMode.cs】的代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using UnityEngine.EventSystems; using UnityEngine.UI; /* 工作原理:根据版本类别,启用或者停用指定的脚本和物体 gameObject对象 脚本/组件 PC VR active 备注 ==================================================================== Pvr_UnitySDK Pvr_UnitySDKManager 0 1 Event Pvr_InputModule 0 1 Event InputWith3D 0 1 Event BaseInput 1 0 PC输入法 Event StandaloneInputModule 1 0 PC输入法 HeadSetControl Pvr_UIPointer 0 1 [EyeMask] Pvr_UnityEyeMask 0 1 Head Camera 1 1 Head Pvr_UnitySDKHeadTrack 0 1 Head Pvr_UnitySDKEyeManager 0 1 FPS Pvr_UnitySDKFPS 0 0 LeftEye Pvr_UnitySDKEye 0 1 RightEye Pvr_UnitySDKEye 0 1 BothEye Pvr_UnitySDKEye 0 1 ControllerManager Pvr_ControllerManager 0 1 ControllerManager Pvr_Controller 0 1 PvrController0 hide PvrController1 hide Canvas Pvr_UICanvas 0 1 Canvas GraphicRaycaster 1 0 */ /// /// 设置编辑器的模式:PC版本或者VR版本 /// public class ChangeEditorMode : MonoBehaviour { /// /// pico的unity sdk /// [Header("pico VR头盔组件")] public GameObject picoSdk; /// /// 需要处理的画布列表 /// [Header("需要处理的画布列表")] public List canvas; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } #if UNITY_EDITOR [ContextMenu("设置成PC版本")] #endif void PcEditor() { SetMode("pc"); } #if UNITY_EDITOR [ContextMenu("设置成VR版本")] #endif void VrEditor() { SetMode("vr"); } void SetMode(string mode) { if (mode != "pc" && mode != "vr") throw new System.Exception("错误的类型,只能是【pc】或者【vr】"); bool vrOn = mode == "vr" ? true : false; bool pcOn = mode == "pc" ? true : false; var allParts = picoSdk.GetComponentsInChildren(true).ToList(); var Pvr_UnitySDK = allParts.Where(x => x.name == "Pvr_UnitySDK").First(); Pvr_UnitySDK.GetComponent().enabled = vrOn; var Event = allParts.Where(x => x.name == "Event").First(); Event.GetComponent().enabled = vrOn; Event.GetComponent().enabled = vrOn; Event.GetComponent().enabled = pcOn; Event.GetComponent().enabled = pcOn; var HeadSetControl = allParts.Where(x => x.name == "HeadSetControl").First(); HeadSetControl.GetComponent().enabled = vrOn; var EyeMask = allParts.Where(x => x.name == "[EyeMask]").First(); EyeMask.GetComponent().enabled = vrOn; var Head = allParts.Where(x => x.name == "Head").First(); Head.GetComponent().enabled = true; Head.GetComponent().enabled = vrOn; Head.GetComponent().enabled = vrOn; var FPS = allParts.Where(x => x.name == "FPS").First(); FPS.GetComponent().enabled = false; var LeftEye = allParts.Where(x => x.name == "LeftEye").First(); LeftEye.GetComponent().enabled = vrOn; var RightEye = allParts.Where(x => x.name == "RightEye").First(); RightEye.GetComponent().enabled = vrOn; var BothEye = allParts.Where(x => x.name == "BothEye").First(); BothEye.GetComponent().enabled = vrOn; var ControllerManager = allParts.Where(x => x.name == "ControllerManager").First(); ControllerManager.GetComponent().enabled = vrOn; ControllerManager.GetComponent().enabled = vrOn; var PvrController0 = allParts.Where(x => x.name == "PvrController0").First(); PvrController0.gameObject.SetActive(vrOn); var PvrController1 = allParts.Where(x => x.name == "PvrController1").First(); PvrController1.gameObject.SetActive(vrOn); canvas.ForEach(x=> { x.GetComponent().enabled = vrOn; x.GetComponent().enabled = pcOn; }); } } 五、总结

VR一体机要点:

1、电脑上调试逻辑2、设备上调试效果3、官方不提供模拟器,那就自己撸一个


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭